home *** CD-ROM | disk | FTP | other *** search
- E! for Windows - Technical Note #001
- **************************************
- Troubles when compiling with MSC 7.00
- **************************************
-
- If you use the Microsoft (tm) C/C++ compiler version 7.00, you may have
- trouble when compiling a program from E!: the output of CL.EXE cannot be
- captured, thus preventing E! from pointing to errors in your source file.
-
- We have investigated this problem and we found that CL doesn't seem to use
- DOS calls when making output to the screen. Since the EWX program used by E!
- to launch compilers is based on the assumption that any compiler uses
- standard DOS calls to output messages, it fails.
-
- There's a work-around however. We have noticed that this behavior changes if
- the output of CL is redirected.
-
- So, if you append a "> nul" redirection command to the CL command in either
- the Commands dialog box of E! or in your makefile, E! will be able to capture
- the compiler's output and therefore it will be able to show you the errors in
- the source files.
-
- We are waiting for an answer of Microsoft about this problem. If another
- solution exists, we'll document it immediately.
-
- Patrick Philippot
- 01/13/93
-
- We got no answer from the Microsoft support but we found out that while CL
- is actually using int 21h function 40h to output data to the screen in any
- case, it uses stdout only when it is redirected. Otherwise, it seems to use
- a duplicate handle to write to the screen. So, the above work-around seems
- to be the only solution to bypass this strange behavior.
-
- Patrick Philippot
- 01/15/93
-
- Thanks to Microsoft's technical support we have found a satisfactory
- solution to this problem. The new version of EWX.EXE now checks whether the
- standard output device handle has been remapped and is able to capture this
- output even in that case. The "> nul" trick is no more necessary with MSC
- 7.00.
-
- However, it may be useful with other compilers using a DOS extender.
-
- Patrick Philippot
- 01/19/93
-